package com.invernadero.invernaderotesis.Acceso_a_datos.FabricaDAO;

import com.invernadero.invernaderotesis.Acceso_a_datos.AdminSqlite.AdminSqlite;
import com.invernadero.invernaderotesis.Acceso_a_datos.DAOS.*;
import com.invernadero.invernaderotesis.Acceso_a_datos.iDAOS.*;

import android.annotation.TargetApi;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Build;


public class FabricaDAO {
	
    public static iDAOAmbiente CrearDAOAmbiente(Context context){
		
		return (new DAOAmbiente(context));
	} // CrearDAOAmbiente

    public static iDAOHumedad CrearDAOHumedad(Context context){
		
		return (new DAOHumedad(context));
	} // CrearDAOHumedad

    public static iDAOTemperatura CrearDAOTemperatura(Context context){
		
		return (new DAOTemperatura(context));
	} // CrearDAOTemperatura
    
    public static iDAOLuminocidad CrearDAOLuminocidad(Context context){
		
		return (new DAOLuminocidad(context));
	} // CrearDAOLuminocidad
    
    public static iDAOAcidez CrearDAOAcidez(Context context){
		
		return (new DAOAcidez(context));
	} // CrearDAOAcidez
    
    public static iDAOPlanta CrearDAOPlanta(Context context){
		
		return (new DAOPlanta(context));
	} // CrearDAOPlanta
    
    public static iDAOCliente CrearDAOCliente(Context context){
		
		return (new DAOCliente(context));
	} // CrearDAOCliente
    
    public static iDAOTanqueAgua CrearDAOTanqueAgua(Context context){
		
		return (new DAOTanqueAgua(context));
	} // CrearDAOTanqueAgua
    
    public static iDAOTanqueLiquidoEspecial CrearDAOTanqueLiquidoEspecial(Context context){
		
		return (new DAOTanqueLiquidoEspecial(context));
	} // CrearDAOTanqueLiquidoEspecial
    
    public static iDAOInvernadero CrearDAOInvernadero(Context context){
		
		return (new DAOInvernadero(context));
	} // CrearDAOInvernadero

    /**
	 * Crea un objeto SQLite apuntando a la BD "BdTerrae"
	 * @param context
	 * @return
	 */
	@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
	public static SQLiteDatabase CrearSQLiteDatabase (Context context)
	{
		AdminSqlite admin = new AdminSqlite(context, "BdTerraeTesis", null, 1);
		SQLiteDatabase bd;
		
		try{
		// obtiene una referencia de la BD de lectura y escritura
		   bd = admin.getWritableDatabase();
		  
		}catch(Exception e){
			
			throw new SQLiteException("Ocurrio un error al generar la BD",e);
			
		}finally{
			
		}
		 return bd;
		//return bd;
	} // CrearSQLiteDatabase
}
